// app/evcp/basic-contract-template/[id]/page.tsx import * as React from "react" import { notFound } from "next/navigation" import { ArrowLeft, FileText, Download, Edit } from "lucide-react" import Link from "next/link" import { Metadata } from "next" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { formatDateTime } from "@/lib/utils" import { getBasicContractTemplateByIdService, refreshTemplatePage } from "@/lib/basic-contract/service" import { TemplateEditorWrapper } from "@/lib/basic-contract/template/template-editor-wrapper" interface BasicContractTemplateDetailPageProps { params: Promise<{ id: string }> } // 메타데이터 생성 export async function generateMetadata(props: BasicContractTemplateDetailPageProps): Promise { const params = await props.params; const template = await getBasicContractTemplateByIdService(params.id); if (!template) { return { title: "템플릿을 찾을 수 없음", description: "요청한 기본계약서 템플릿을 찾을 수 없습니다." }; } return { title: `${template.templateName} (v${template.revision}) - 기본계약서 템플릿`, description: `${template.templateName} 템플릿의 상세 정보 및 편집 페이지입니다.` }; } export default async function BasicContractTemplateDetailPage(props: BasicContractTemplateDetailPageProps) { const params = await props.params; const template = await getBasicContractTemplateByIdService(params.id); if (!template) { notFound(); } // 페이지 새로고침 서버 액션 const handleRefresh = async () => { "use server" await refreshTemplatePage(template.id.toString()); }; return (
{/* Header */}

{template.templateName} v{template.revision}

기본계약서 템플릿 상세 정보 및 편집

{/* */}
{/* 상단 - 기본 정보만 (최대한 압축) */} 기본 정보
{template.status === "ACTIVE" ? "활성" : "폐기"}
v{template.revision}
{template.legalReviewRequired ? "필요" : "불필요"}
{template.fileName}
{/* 하단 - 파일 뷰어 (전체 너비, 높이 증가) */}
템플릿 편집기 Word 문서를 편집하고 {'{{변수}}'} 를 설정할 수 있습니다.
); }